package com.avo.ramcache.anno.core;

import com.avo.ramcache.anno.core.type.CacheType;
import com.avo.ramcache.anno.core.type.CacheUnit;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Cached {

    String size();

    int initialCapacity() default 16;

    int concurrencyLevel() default 16;

    Persister persister() default @Persister;

    CacheType type() default CacheType.LRU;

    CacheUnit unit() default CacheUnit.ENTITY;

    boolean enhanced() default true;

}
